package homework;

public class p162 implements Runnable {
    public p162(){
        TestThread testThread1=new TestThread(this,"1");
        TestThread testThread2=new TestThread(this,"2");
        testThread1.start();
        testThread2.start();
    }

    public static void main(String[] args){
        new p162();
    }

    @Override
    public void run() {
        TestThread t=(TestThread)Thread.currentThread();
        try {
            if(!t.getName().equalsIgnoreCase("1")){
                synchronized (this){
                    wait();
                }
            }

            while (true){
                System.out.println("@time in thread"+t.getName()+"="+t.increaseTime());

                if(t.getTime()%10==0){
                    synchronized (this){
                        System.out.println("*****************************");
                        notify();
                        if(t.getTime()==100) {
                            break;
                        }

                        wait();
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }

    }
}

class TestThread extends Thread{
    private int time=0;
    public TestThread(Runnable r,String name){
        super(r,name);
    }

    public int getTime(){
        return time;
    }

    public int increaseTime(){
        return ++time;
    }
}


